package com.xky.example_student.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xky.example_student.entity.Score;
import com.xky.example_student.entity.ScoreStatistics;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.List;

public interface ScoreService extends IService<Score> {
    /**
     * 导出成绩数据到文件
     * @throws FileNotFoundException 如果目标文件无法创建或写入时抛出
     */
    byte[] generateExcel(List<Score> scores) throws IOException;

    /**
     * 计算单个学生的平均分
     * @param name 学生姓名
     * @return 平均分
     */
    Integer sumScore(String name);

    /**
     * 计算指定学生的成绩统计信息
     *
     * @param studentId 学生ID
     * @return 成绩统计信息列表
     */
    List<ScoreStatistics> calculateStudentAverages(Long studentId);

    /**
     * 计算所有学生的成绩统计信息
     * @return 成绩统计信息列表
     */
    List<ScoreStatistics> calculateAllAverages();

    /**
     * 学分绩计算
     *
     * @param stuId
     * @return
     */
    float creditScoreCalculation(Integer stuId);
    
    /**
     * 更新指定学生的所有成绩的学分绩字段
     * @param stuId 学生学号
     */
    void updateStudentCreditScores(Integer stuId);
    
    /**
     * 更新所有学生的学分绩字段
     */
    void updateAllCreditScores();


}
